home *** CD-ROM | disk | FTP | other *** search
- package Local.Draw
- {
- import STC9.System.CProfiler;
- import flash.display.*;
- import flash.events.*;
- import flash.geom.*;
-
- public class CExplodeBMD
- {
-
-
- private var mParticles:Object;
-
- public function CExplodeBMD(param1:Point)
- {
- super();
- mParticles = new Object();
- CExplodeBMDParticle.mWorldPosition = param1;
- }
-
- public function CreatePoints(param1:BitmapData) : Array
- {
- var _loc2_:Number = NaN;
- var _loc3_:Number = NaN;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- var _loc6_:* = NaN;
- var _loc7_:Number = NaN;
- var _loc8_:Array = null;
- var _loc9_:int = 0;
- var _loc10_:int = 0;
- var _loc11_:Array = null;
- _loc2_ = Math.ceil(param1.width / CExplodeBMDParticle.mParticleSize);
- _loc3_ = Math.ceil(param1.height / CExplodeBMDParticle.mParticleSize);
- _loc4_ = param1.width / _loc2_;
- _loc5_ = param1.height / _loc3_;
- _loc11_ = new Array();
- _loc7_ = 0;
- _loc10_ = _loc3_;
- while(_loc10_ >= 0)
- {
- _loc11_.push(_loc8_ = new Array());
- if(false)
- {
- continue;
- }
- §§push(0);
- if(true)
- {
- _loc6_ = §§pop();
- if(true)
- {
- §§push(_loc2_);
- if(true)
- {
- _loc9_ = §§pop();
- if(true)
- {
- while(true)
- {
- if(_loc9_ >= 0)
- {
- _loc8_.push(new Point(Math.floor(_loc6_),Math.floor(_loc7_)));
- if(true)
- {
- §§push(_loc6_);
- if(false)
- {
- break;
- }
- §§push(§§pop() + _loc4_);
- if(true)
- {
- §§push(§§pop());
- }
- _loc6_ = §§pop();
- _loc9_--;
- }
- continue;
- }
- }
- addr139:
- _loc7_ = §§pop() + _loc5_;
- addr140:
- _loc10_--;
- continue;
- addr136:
- addr138:
- }
- §§goto(addr136);
- §§push(_loc7_);
- }
- §§goto(addr138);
- }
- §§goto(addr140);
- }
- §§goto(addr139);
- }
- return _loc11_;
- }
-
- public function AddBMD(param1:BitmapData, param2:Matrix, param3:Point = null, param4:Number = 15) : *
- {
- if(true)
- {
- CProfiler.StartProfile("CExplodeBMD.AddBMD");
- if(true)
- {
- CExplodeBMDParticle.mParticleSize = param4;
- CreateParticles(param1,CreatePoints(param1),param2,param3);
- }
- CProfiler.StopProfile("CExplodeBMD.AddBMD");
- }
- }
-
- public function CreateParticles(param1:BitmapData, param2:Array, param3:Matrix, param4:Point) : void
- {
- var _loc5_:int = 0;
- var _loc6_:int = 0;
- var _loc7_:int = 0;
- var _loc8_:Point = null;
- var _loc9_:Point = null;
- var _loc10_:CExplodeBMDParticle = null;
- _loc5_ = 0;
- while(_loc5_ < param2.length - 1)
- {
- _loc6_ = 0;
- _loc7_ = param2[_loc5_].length - 1;
- while(_loc6_ < _loc7_)
- {
- _loc8_ = param2[_loc5_][_loc6_];
- _loc9_ = param2[_loc5_ + 1][_loc6_ + 1];
- if(!(_loc10_ = new CExplodeBMDParticle(param1,new Rectangle(_loc8_.x,_loc8_.y,_loc9_.x - _loc8_.x,_loc9_.y - _loc8_.y),param3,param4)).mInvalid)
- {
- if(false)
- {
- continue;
- }
- mParticles[_loc10_.mID] = _loc10_;
- }
- _loc6_++;
- }
- _loc5_++;
- }
- }
-
- public function Process() : void
- {
- var _loc1_:* = 0;
- var _loc2_:CExplodeBMDParticle = null;
- if(true)
- {
- CProfiler.StartProfile("CExplodeBMD.Process");
- §§push(0);
- if(true)
- {
- _loc1_ = §§pop();
- addr23:
- §§push(0);
- }
- for each(_loc2_ in mParticles)
- {
- _loc1_++;
- if(!_loc2_.Process())
- {
- _loc2_.Dispose();
- delete mParticles[_loc2_.mID];
- }
- }
- if(true)
- {
- CProfiler.AddDebug("CExplodeBMD.Count",String(_loc1_));
- CProfiler.StopProfile("CExplodeBMD.Process");
- }
- return;
- }
- §§goto(addr23);
- }
-
- public function Render(param1:BitmapData) : void
- {
- var _loc2_:CExplodeBMDParticle = null;
- if(true)
- {
- CProfiler.StartProfile("CExplodeBMD.Render");
- }
- for each(_loc2_ in mParticles)
- {
- if(true)
- {
- _loc2_.Render(param1);
- }
- }
- if(true)
- {
- CProfiler.StopProfile("CExplodeBMD.Render");
- }
- }
- }
- }
-